Information storage systems may include a variety of different hardware and software components. For instance, a storage system may include one or more storage controllers, where each of the storage controllers provides the low-level control for a plurality of physical storage drives. The storage system may also include network connections and other items that are ancillary to the storage functionality of the system. Storage systems continue to become more and more complex, with storage controllers hosting an increasing number of logical storage volumes and storage controllers being clustered rather than simply standing alone.
An information storage management system may have at least two different entities. A first entity may include a monitoring entity that discovers the objects (e.g., storage controllers) that are managed by the information storage management system and persists them in a production database. A second entity may include a reporting entity that parses the inventory and displays the important data to the user as reports. The schema for database tables is designed with particular emphasis on what kinds of operations are performed on the tables. The monitoring entity performs frequent insertions and updates to the tables. Accordingly, it may be desirable for the tables that are used by the monitoring entity to be optimized for such transactions (e.g., faster updates). The reporting entity submits queries to the database and generates reports. Accordingly, it may be desirable for the tables that are used by the reporting entity to be optimized for such transactions.
A single schema, however, is typically not used to address both of these optimizations. In an example, a database that is optimized for updates by the monitoring entity is typically not optimized for reporting. In particular, although the database table schema may be optimized for transactions that update the database tables (e.g., insertions), the schema may not be conducive to efficiently querying the database tables. The database table schema may adversely affect the performance of querying the database tables and generating reports.
To overcome this disadvantage, a data warehouse may be built on a separate system by extracting the data stored in the production database, transforming the extracted data into another form that is conducive to efficiently querying the data, and storing the transformed data in the data warehouse. In such a data management solution, the warehouse may be optimized for reporting and built on a system that is separate from the production database. Data stored in the data warehouse may be refreshed from the database tables to keep the warehouse and the data in the production database consistent. The data warehouse may be arranged to better support querying instead of updates. In an example, the data warehouse may include a server deployed for providing services such as reporting, chargeback, and billing purposes.